<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html lang="en"><head><!-- joedw 09/14 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<TITLE>Extensible 3D (X3D), ISO/IEC FCD 19775-1r1:200x, Annex H CADInterchange profile</TITLE>
<link rel="stylesheet" href="X3D.css" type="text/css"></head>

<body>

<div class="CenterDiv">
<img class="x3dlogo" src="../Images/x3d.png" alt="X3D logo" style="width: 176px; height: 88px">
</div>

<div class="CenterDiv">
<p class="HeadingPart">
    Extensible 3D (X3D)<br>
    Part 1: Architecture and base components</p>

<p class="AnnexHeadingBottom">
    Annex H</p>

<p class="AnnexType">
        (normative)
</p><p class="AnnexHeadingBottom">
CADInterchange profile
</p>
</div>

<img class="x3dbar" src="../Images/x3dbar.png" alt="--- X3D separator bar ---" width="430" height="23">

<h1><img class="cube" src="../Images/cube.gif" alt="cube" width="20" height="19">
<a name="General"></a>H.1 General</h1>

<p>This annex defines the X3D components that comprise the CADInterchange profile.
  This annex includes not only the nodes that shall be supported but also which fields
  in the supported nodes may be ignored.&nbsp;</p>

<p>This profile is targeted towards:</p>

<ul>
  <li>Distillation of computer-aided design (CAD) data to downstream applications.</li>
  <li>Appropriately supporting Geometry and Appearance capabilities data for 
	CAD.</li>
</ul>

<h1><img class="cube" src="../Images/cube.gif" alt="cube" width="20" height="19">
<a name="Topics"></a>H.2 Topics</h1>

<p><a href="#t-Topics">Table H.1</a> provides links to the major topics in
  this annex.</p>

<div class="CenterDiv">

<p class="TableCaption">
<a name="t-Topics"></a><b>
Table H.1 &#8212; Topics</b></p>

  <table>
    <tbody><tr>
      <td>
        <ul>
          <li><a href="#General">H.1 General</a></li>
          <li><a href="#Topics">H.2 Topics in this annex</a></li>
          <li><a href="#ComponentSupport">H.3 Component support</a></li>
          <li><a href="#ConformanceCriteria">H.4 Conformance criteria</a></li>
          <li><a href="#NodeSet">H.5 Node set</a></li>
          <li><a href="#OtherLimitations">H.6 Other limitations</a></li>
        </ul>
        <ul>
<li><a href="#t-Topics">Table H.1 &#8212; Topics</a></li>
<li><a href="#t-ComponentsAndLevels">Table H.2 &#8212; Components and levels</a></li>
<li><a href="#t-NodesForConformingToCADProfile">Table H.3 &#8212; Nodes for conforming to the 
CADInterchange profile</a></li>
<li><a href="#t-OtherLimitations">Table H.4 &#8212; Other limitations</a></li>
        </ul>
      </td>
    </tr>
  </tbody></table>
</div>

<h1><img class="cube" src="../Images/cube.gif" alt="cube" width="20" height="19">
<a name="ComponentSupport"></a>H.3 Component support</h1>

<p><a href="#t-ComponentsAndLevels">Table H.2</a> lists the components and their
  levels which shall be supported in the CADInterchange profile. Tables H.2 and H.3
  describe limitations on required support for nodes and fields contained within
  these components.</p>

<div class="CenterDiv">

<p class="TableCaption">
<a name="t-ComponentsAndLevels"></a>Table H.2 &#8212; Components and levels</p>

<table>
      <tbody><tr>
        <th>Component</th>
        <th>Level</th>
        <th>Reference</th>
      </tr>
      <tr>
        <td>Core</td>
        <td>1</td>
        <td><a href="components/core.html#SupportLevels">7.5 Support levels</a></td>
      </tr>
      <tr>
        <td>Networking</td>
        <td>1</td>
        <td><a href="components/networking.html#SupportLevels">9.5 Support
        levels</a></td>
      </tr>
      <tr>
        <td>Grouping</td>
        <td>1</td>
        <td><a href="components/group.html#SupportLevels">10.5 Support levels</a></td>
      </tr>
      <tr>
        <td>Rendering</td>
        <td>4</td>
        <td><a href="components/rendering.html#SupportLevels">11.5 Support levels</a></td>
      </tr>
      <tr>
        <td>Shape</td>
        <td>2</td>
        <td><a href="components/shape.html#SupportLevels">12.5 Support levels</a></td>
      </tr>
      <tr>
        <td>Lighting</td>
        <td>1</td>
        <td><a href="components/lighting.html#SupportLevels">17.5 Support levels</a></td>
      </tr>
      <tr>
        <td>Texturing</td>
        <td>2</td>
        <td><a href="components/texturing.html#SupportLevels">18.5 Support
        levels</a></td>
      </tr>
      <tr>
        <td>Navigation</td>
        <td>2</td>
        <td><a href="components/navigation.html#SupportLevels">23.4 Support
        levels</a></td>
      </tr>
      <tr>
        <td>Shaders</td>
        <td>1</td>
        <td><a href="components/shaders.html#SupportLevels">31.5 Support
        levels</a></td>
      </tr>
      <tr>
        <td>CADGeometry</td>
        <td>2</td>
        <td><a href="components/CADGeometry.html#SupportLevels">32.5 Support
        levels</a></td>
      </tr>
    </tbody></table>
</div>

<h1><img class="cube" src="../Images/cube.gif" alt="cube" width="20" height="19">
<a name="ConformanceCriteria"></a>H.4 Conformance criteria</h1>

<p>Conformance to this profile shall include conformance criteria defined by the
  specifications for those components and levels listed in
<a href="#t-ComponentsAndLevels">Table H.2</a>.</p>

<p>In Tables H.3 and H.4, the first column defines the item for which conformance
  is being defined. In some cases, general limits are defined but are later overridden
  in specific cases by more restrictive limits. The second column defines the
  requirements for an X3D file conforming to the CADInterchange profile; if an 
X3D
  file contains any items that exceed these limits, it may not be possible for
  an X3D browser conforming to the CADInterchange profile to successfully parse that
  X3D file. The third column defines the minimum complexity for an X3D scene that
  an X3D browser conforming to the CADInterchange profile shall be able to present
  to the user. Fields flagged as "not supported" may be supported by
  browsers which conform to the CADInterchange profile. The word "ignore"
  in the minimum browser support column refers only to the display of the item;
  in particular, <i>set_</i> events to ignored inputOutput fields shall still generate corresponding
  <i>_changed</i> events.</p>

<h1><img class="cube" src="../Images/cube.gif" alt="cube" width="20" height="19">
<a name="NodeSet"></a>H.5 Node set</h1>

<p><a href="#t-NodesForConformingToCADProfile">Table H.3</a> lists the nodes which shall be
  supported in the CADInterchange profile and specifies any fields in these nodes
  for which this profile requires less than full support.</p>

<div class="CenterDiv">

<p class="TableCaption">
<a name="t-NodesForConformingToCADProfile"></a>Table H.3 &#8212; Nodes for conforming to the CADInterchange profile</p>

  <table>
  <tbody><tr>
    <th>Item</th>
    <th>X3D File Limit</th>
    <th>Minimum Browser Support</th>
  </tr>
  <tr>
    <td>Appearance</td>
    <td>No restrictions.</td>
    <td><i>fillProperties</i> not
    supported.</td>
  </tr>
  <tr>
    <td>CADAssembly</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>CADFace</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>CADLayer</td>
    <td>No restrictions.</td>
    <td>Full Support</td>
  </tr>
  <tr>
    <td>CADPart</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>Billboard</td>
    <td>No restrictions.</td>
    <td>Can treat as just a grouping node, no runtime requirements</td>
  </tr>
  <tr>
    <td>Collision</td>
    <td>No restrictions.</td>
    <td>Can treat as just a grouping node, no runtime requirements</td>
  </tr>
  <tr>
    <td>Color</td>
    <td>5,592,405 colours.</td>
    <td>5,592,405 colours.</td>
  </tr>
  <tr>
    <td>ColorRGBA</td>
    <td>4,194,304 colours.</td>
    <td>4,194,304 colours</td>
  </tr>
  <tr>
    <td>Coordinate</td>
    <td>16,777,216 points</td>
    <td>16,777,216 points.</td>
  </tr>
  <tr>
    <td>DirectionalLight</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>FragmentShader</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>Group</td>
    <td>Restrictions as for all groups.</td>
    <td><i>addChildren</i> not supported. <i>removeChildren</i>
    not supported.
      Otherwise as for all groups.</td>
  </tr>
  <tr>
    <td>ImageTexture</td>
    <td>JPEG (<a href="references.html#[JPEG]D">2.[JPEG]</a>) and PNG (<a href="references.html#[I15948]">2.[I15948]</a>)
    format.</td>
    <td>JPEG (<a href="references.html#[JPEG]D">2.[JPEG]</a>) and PNG (<a href="references.html#[I15948]">2.[I15948]</a>)
    format.</td>
  </tr>
  <tr>
    <td>IndexedLineSet</td>
    <td>5,592,405 total vertices. 5,592,405 indices in any index field.</td>
    <td>5,592,405 total vertices. 5,592,405 indices in any index field.</td>
  </tr>
  	<tr>
    <td>IndexedQuadSet</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
  	</tr>
  <tr>
    <td>IndexedTriangleFanSet</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
  </tr>
  <tr>
    <td>IndexedTriangleSet</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
  </tr>
  <tr>
    <td>IndexedTriangleStripSet</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
  </tr>
  <tr>
    <td>LineProperties</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>LineSet</td>
    <td>5,592,405 total vertices.</td>
    <td>5,592,405 total vertices.</td>
  </tr>
  <tr>
    <td>LOD</td>
    <td>No restrictions.</td>
    <td>Runtime switching not required.  An implementation can select one level and display</td>
  </tr>
  <tr>
    <td>Material</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>MetadataDouble</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>MetadataFloat</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>MetadataInteger</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>MetadataSet</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>MetadataString</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>MultiShader</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>MultiTexture</td>
    <td>No restrictions.</td>
    <td>At least one texture displayed per node with any number specified.<p>Full support.</p></td>
  </tr>
  <tr>
    <td>MultiTextureCoordinate</td>
    <td>15,000 coordinates.</td>
    <td>15,000 coordinates.</td>
  </tr>
  <tr>
    <td>MultiTextureTransform</td>
    <td>No restrictions.</td>
    <td>Full support.
    </td>
  </tr>
  <tr>
    <td>NavigationInfo</td>
    <td>No restrictions.</td>
    <td><i>avatarSize</i> optionally supported. <i>speed</i> optionally
    supported. <i>type</i> optionally supported. <i>visibilityLimit</i>
    optionally supported.</td>
  </tr>
  <tr>
    <td>Normal</td>
    <td>5,592,405 normals</td>
    <td>5,592,405 normals.</td>
  </tr>
  <tr>
    <td>PixelTexture</td>
    <td>512 width. 512 height.</td>
    <td>512 width. 512 height. Display fully transparent and fully
      opaque pixels.</td>
  </tr>
  <tr>
    <td>PointSet</td>
    <td>5,592,405 points.</td>
    <td>5,592,405 points.</td>
  </tr>
  	<tr>
    <td>QuadSet</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
    <td>5,592,405 total faces. 5,592,405 indices in any index field.</td>
  	</tr>
  <tr>
    <td>Shader</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>ShaderAppearance</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>Shape</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>TextureCoordinate</td>
    <td>5,592,405 coordinates.</td>
    <td>5,592,405 coordinates.</td>
  </tr>
  <tr>
    <td>TextureCoordinateGenerator</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>TextureTransform</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>Transform</td>
    <td>Restrictions as for all groups.</td>
    <td><i>addChildren</i> not supported. <i>removeChildren</i>
    not supported.
      Otherwise, full support except as for all groups.</td>
  </tr>
  <tr>
    <td>TriangleFanSet</td>
    <td>5,592,405 triangles per fan. 5,592,405 total triangles.</td>
    <td>5,592,405 triangles per fan. 5,592,405 total triangles.</td>
  </tr>
  <tr>
    <td>TriangleSet</td>
    <td>5,592,405 triangles</td>
    <td>5,592,405 triangles</td>
  </tr>
  <tr>
    <td>TriangleStripSet</td>
    <td>5,592,405 triangles per strip. 5,592,405 total triangles</td>
    <td>5,592,405 triangles per strip. 5,592,405 total triangles.</td>
  </tr>
  <tr>
    <td>Viewpoint</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>VertexShader</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
  <tr>
    <td>WorldInfo</td>
    <td>No restrictions.</td>
    <td>Full support.</td>
  </tr>
</tbody></table>
</div>

<h1><img class="cube" src="../Images/cube.gif" alt="cube" width="20" height="19">
<a name="OtherLimitations"></a>H.6 Other limitations</h1>

<p><a href="#t-OtherLimitations">Table H.4</a>
  specifies other aspects of X3D functionality which are supported by this profile.
  Note that general items refer only to those specific nodes listed in
<a href="#t-NodesForConformingToCADProfile">Table H.3</a>.</p>

<div class="CenterDiv">

<p class="TableCaption">
<a name="t-OtherLimitations"></a>Table H.4 &#8212; Other limitations</p>

    <table>
<tbody><tr>
<th>Item</th>
<th>X3D File Limit</th>
<th>Minimum Browser Support</th>
</tr>
<tr>
<td>All groups</td>
<td>16777216 children.</td>
<td>16777216 children.</td></tr>
<tr>
<td>All lights</td>
<td>8 simultaneous lights.</td>
<td>8 simultaneous lights.</td></tr>
<tr>
<td>Names for DEF/field</td>
<td>50 utf8 octets.</td>
<td>50 utf8 octets.</td></tr>
<tr>
<td>All <i>url</i> fields</td>
<td>10 URLs.</td>
<td>10 URLs. URN's ignored.<br>
Support &quot;http&quot;, &quot;file&quot;, and &quot;ftp&quot; protocols.<br>
Support relative URLs where relevant.</td></tr>
<tr>
<td>SFBool</td>
<td>No restrictions.</td>
<td>Full support.</td></tr>
<tr>
<td>SFColor</td>
<td>No restrictions.</td>
<td>Full support.</td></tr>
<tr>
<td>SFColorRGBA</td>
<td>No restrictions.</td>
<td>Full support.</td>
</tr>
<tr>
<td>SFDouble</td>
<td>No restrictions.</td>
<td>Full support. Range &plusmn;1e&plusmn;12. Precision 1e-7.</td></tr>
<tr>
<td>SFFloat</td>
<td>No restrictions.</td>
<td>Full support.</td></tr>
<tr>
<td>SFImage</td>
<td>512 width. 512 height.</td>
<td>512 width. 512 height.</td></tr>
<tr>
<td>SFInt32</td>
<td>No restrictions.</td>
<td>Full support.</td></tr>
<tr>
<td>SFNode</td>
<td>No restrictions.</td>
<td>Full support.</td></tr>
<tr>
<td>SFRotation</td>
<td>No restrictions.</td>
<td>Full support.</td></tr>
<tr>
<td>SFString</td>
<td>30,000 utf8 octets.</td>
<td>30,000 utf8 octets.</td></tr>
<tr>
<td>SFTime</td>
<td>No restrictions.</td>
<td>Full support.</td></tr>
<tr>
<td>SFVec2d</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>SFVec2f</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>SFVec3d</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>SFVec3f</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>MFColor</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>MFColorRGBA</td>
<td>15,000 values.</td>
<td>15,000 values.</td>
</tr>
<tr>
<td>MFDouble</td>
<td>1000 values.</td>
<td>1000 values.</td></tr>
<tr>
<td>MFFloat</td>
<td>1,000 values.</td>
<td>1,000 values.</td></tr>
<tr>
<td>MFInt32</td>
<td>20,000 values.</td>
<td>20,000 values.</td></tr>
<tr>
<td>MFNode</td>
<td>500 values.</td>
<td>500 values.</td></tr>
<tr>
<td>MFRotation</td>
<td>1,000 values.</td>
<td>1,000 values.</td></tr>
<tr>
<td>MFString</td>
<td>30,000 utf8 octets per string, 10 strings.</td>
<td>30,000 utf8 octets per string, 10 strings.</td></tr>
<tr>
<td>MFTime</td>
<td>1,000 values.</td>
<td>1,000 values.</td></tr>
<tr>
<td>MFVec2d</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>MFVec2f</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>MFVec3d</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
<tr>
<td>MFVec3f</td>
<td>15,000 values.</td>
<td>15,000 values.</td></tr>
</tbody></table>
</div>

<img class="x3dbar" src="../Images/x3dbar.png" alt="--- X3D separator bar ---" width="430" height="23">

</body></html>